#pragma once

/*
    日志等级类：
        1、定义日志系统包含的日志等级：
            UNKNOW
            DEBUG   调试等级
            INFO    提示等级
            WARN    警告等级
            ERROR   错误等级
            FATAL   致命错误等级
            OFF
        项目中都会设置一个默认的日志输出等级，只有输出的日志等级大于等于默认限制等级才可以输出，设置为OFF代表不输出
        2、提供对应接口：将枚举转化为对应字符串
*/

namespace Log
{
    class LogLevel
    {
    public:
        enum class level
        {
            UNKNOW = 0,
            DEBUG,
            INFO,
            WARN,
            ERROR,
            FATAL,
            OFF
        };

        static const char *toString(LogLevel::level grade)
        {
            switch (grade)
            {
            case LogLevel::level::DEBUG:
                return "DEBUG";
            case LogLevel::level::INFO:
                return "INFO";
            case LogLevel::level::WARN:
                return "WARN";
            case LogLevel::level::ERROR:
                return "ERROR";
            case LogLevel::level::FATAL:
                return "FATAL";
            case LogLevel::level::OFF:
                return "OFF";
            default:
                return "UNKNOW";
            }
        }
    };
}